#ifndef POINT3D_OSG
#define POINT3D_OSG
#include <DefinePluginOsg.h>
#include <QObject>
#include <osg/MatrixTransform>
#include <OsgClassDataSource/MatrixTransformOsg.h>
#include <QUrl>
#include <osg/CopyOp>


class DLL_EXPORT_PLUGIN_OSG Point3DOsg : public MatrixTransformOsg
{
	Q_OBJECT
        Q_PROPERTY(double Radius READ getRadius WRITE setRadius)
        Q_PROPERTY(double Fineness READ getFineness WRITE setFineness)
        Q_PROPERTY(double CoordinateSize READ getCoordinateSize WRITE setCoordinateSize)
        Q_PROPERTY(bool ShowShpere READ getShowShpere WRITE setShowShpere)
        Q_PROPERTY(bool ShowCoordinate READ getShowCoordinate WRITE setShowCoordinate)
        Q_PROPERTY(double LineWidth READ getCoordinateLineSize WRITE setCoordinateLineSize)

public:
    Point3DOsg(QObject *parent = 0);
    virtual ~Point3DOsg();


    //virtual void copyFrom(EObject* objPtr);
    //virtual EObject* clone();

    double getRadius();
    double getFineness();
    double getCoordinateSize();
    bool getShowShpere();
    bool getShowCoordinate();
    double getCoordinateLineSize();

    void setRadius(double radius);
    void setFineness(double fineness);
    void setCoordinateSize(double coorSize);
    void setShowShpere(bool boolValue);
    void setShowCoordinate(bool boolValue);
    void setCoordinateLineSize(double doubleValue);


protected slots:

    void slotsMatrixChanged(QMatrix4x4 matrix);
private:

};
#endif // POINT3D_OSG
